package com.zzl.car.context;


import com.zzl.car.exception.IBaseException;

import java.util.Objects;

/**
 * 统一的数据传输格式
 *
 * @author awg
 * @date 2020/10/28 星期三
 */
public class ContentReturnType {

    /**
     * 响应码
     */
    private String code;

    /**
     * 响应信息
     */
    private String message;

    /**
     * 响应结果
     */
    private Object result;

    private ContentReturnType() {
        super();
    }

    /**
     * 定义消息返回的内容
     *
     * @param resultCode 通用的响应码
     * @param resultMsg 通用的响应信息
     * @param data  返回的数据
     * @return 指定的消息返回对象
     */
    public static ContentReturnType ofReturn(String resultCode, String resultMsg, Object data) {
        ContentReturnType result = new ContentReturnType();
        result.setCode(resultCode);
        result.setMessage(resultMsg);
        result.setResult(data);
        return result;
    }

    /**
     * 定义消息返回的内容
     *
     * @param base 自定义错误描述枚举类
     * @param data 返回的数据
     * @return 指定的消息返回对象
     */
    public static ContentReturnType ofReturn(IBaseException base, Object data) {
        ContentReturnType result = new ContentReturnType();
        if (Objects.isNull(base)) {

            result.setResult(null);
        } else {
            result.setCode(base.getResultCode());
            result.setMessage(base.getResultMsg());
            result.setResult(data);
        }
        return result;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getResult() {
        return result;
    }

    public void setResult(Object result) {
        this.result = result;
    }
}
